%% @author oberfreak
%% @doc @todo Add description to erlChess.


-module(erlChess).
-behaviour(application).
%% ====================================================================
%% API functions
%% ====================================================================
-export([start/0,start/2, stop/1, listenToStdIn/1]).

start() ->
	io:format("Starting erlChess~n"),
	Interpreter = interpreter:start(),
	listenToStdIn(ok),
	io:format("erlChess stopped").


start(normal, _Args) ->
	start().
	
listenToStdIn(ok) ->
	LastLine = listener_worker:listen(),
	interpreter:interpret(LastLine),
	listenToStdIn(ok);
listenToStdIn(_) ->
	ok.
 
stop(_State) ->
	io:format("Stopping erlChess~n"),
	erlChess_supersup:start_chess(default),
	io:format("Stopped erlChess~n").

%% ====================================================================
%% Internal functions
%% ====================================================================


